﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using Volo.Abp.Application.Dtos;
using ERP.EquipmentManage.Dtos;

namespace ERP.EquipmentManage
{
    /// <summary>
    /// 设备维护计划服务接口
    /// </summary>
    public interface IEquipmentMaintenancePlanService : IApplicationService
    {
        /// <summary>
        /// 获取设备维护计划列表
        /// </summary>
        Task<PagedResultDto<EquipmentMaintenancePlanDto>> GetListAsync(GetEquipmentMaintenancePlanInputDto input);

        /// <summary>
        /// 根据ID获取设备维护计划
        /// </summary>
        Task<EquipmentMaintenancePlanDto> GetAsync(int id);

        /// <summary>
        /// 创建设备维护计划
        /// </summary>
        Task<EquipmentMaintenancePlanDto> CreateAsync(CreateEquipmentMaintenancePlanDto input);

        /// <summary>
        /// 更新设备维护计划
        /// </summary>
        Task<EquipmentMaintenancePlanDto> UpdateAsync(int id, UpdateEquipmentMaintenancePlanDto input);

        /// <summary>
        /// 删除设备维护计划
        /// </summary>
        Task DeleteAsync(int id);

        /// <summary>
        /// 批量删除设备维护计划
        /// </summary>
        Task BatchDeleteAsync(List<int> ids);

        /// <summary>
        /// 检查计划编码是否已存在
        /// </summary>
        Task<bool> CheckPlanCodeExistsAsync(string planCode, int? excludeId = null);
    }
}
